#define _GNU_SOURCE
#include <sched.h>
#include <pthread.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>


double compute_pi_baseline(size_t N)
{
    double pi = 0.0;
    double dt = 1.0 / N;
    for (size_t i = 0; i < N; i++)
    {
        double x = (double) i / N;
        pi += dt / (1.0 + x * x);
    }
    return pi * 4.0;
}

// int main(int argc, char *argv[])
// {
//     cpu_set_t cpuset;

//     CPU_ZERO(&cpuset);
//     CPU_SET(2, &cpuset);

//     if (sched_setaffinity(0, sizeof(cpuset), &cpuset) == -1)
//     {
//         printf("Set CPU affinity failed, error: %s\n", strerror(errno));
//         return -1;
//     }

//     size_t N = strtoul(argv[1], NULL, 0);
//     double result = compute_pi_baseline(N);

//     return 0;
// }

int main(int argc, char *argv[])
{
    size_t N = strtoul(argv[1], NULL, 0);
    double result = compute_pi_baseline(N);

    return 0;
}
